package com.hyfrogx.modules.manage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hyfrogx.common.utils.QueryExt;
import com.hyfrogx.modules.app.form.AdApkFrom;
import com.hyfrogx.modules.manage.entity.HyAdEntity;
import com.hyfrogx.modules.manage.form.ad.AdForm;
import com.hyfrogx.modules.manage.form.ad.AdPutawayForm;
import com.hyfrogx.modules.manage.form.ad.AdVo;

import java.util.List;
import java.util.Map;

/**
 * @version 1.0.0
 * @Author: lfh
 * @Date: 2019/10/16 14:05
 * @Company 汉咏科技
 */
public interface HyAdService extends IService<HyAdEntity> {
    /**
     * 新增广告信息
     * @param adForm
     * @return
     */
    Boolean saveAd(AdForm adForm);

    /**
     * 分页查询广告信息
     * @param queryExt
     * @param pmap
     * @return
     */
    IPage<AdVo> getAdsByMap(QueryExt queryExt, Map pmap);

    /**
     * 编辑广告信息
     * @param adForm
     */
    Boolean updateAd(AdForm adForm);
    /**
     * 广告上架
     * @param adPutawayForm
     */
    Boolean putaway(AdPutawayForm adPutawayForm);

    /**
     * 根据id下架广告
     * @param id
     */
    Boolean AdsoldOutById(Integer id);

    /**
     * 根据id撤销广告上架
     * @param id
     * @return
     */
    boolean AdRepealById(Integer id);

    /**
     * 根据id删除广告
     * @param id
     * @return
     */
    boolean deleteById(Integer id);


    /**
     * app端获取广告列表
     * @param adApkFrom
     * @return
     */
    List<AdVo> getAdList(AdApkFrom adApkFrom);

    /**
     * app端通过广告id获取广告实时资源
     * @param id
     * @return
     */
    HyAdEntity getAdById(Integer id);

    List<String> selectByParam(String str);

}
